package inet.app.controller.parser;



import inet.app.model.object.KqGiai_Item;
import inet.app.model.util.StringTool;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Hashtable;
import java.util.Iterator;


public class Parser_Live_MT {
	private String code1="XSTD",code2="",code3="null";
	private String NAME = "XSSYNC_RESP";
	private ArrayList<KqGiai_Item> list = new ArrayList<KqGiai_Item>();
	Calendar caln = Calendar.getInstance();
 	SimpleDateFormat dfn = new SimpleDateFormat("dd/MM/yyyy");
	String date_current = dfn.format(caln.getTime());
	public Parser_Live_MT() {
	}
	public ArrayList<KqGiai_Item> getList(String json) {
		String dacbiet0,giai10,giai20,giai30,giai40,giai50,giai60,giai70,giai80;
		String last_update0= "10/04/2013";
		String code0 = "XSTD";
		String date0 = "12/04/2013";
		dacbiet0 = ".....";
		giai10 = ".....";
		giai20 = ".....";
		giai30 = ".....-.....";
		giai40 = ".....-.....-.....-.....-.....-.....-.....";
		giai50 = ".....";
		giai60 = ".....-.....-.....";
		giai70 = ".....";
		giai80 = ".....";
		
		String strResult ="XSSYNC_RESP|0|01/04/2013|XSMB|02/04/2013|0:51493|1:95137|2:76778 - 12668||\r\n";
		
		int Length_Live;
		String[] data = json.split("\\|\\|\r\n");
		System.out.println("DATA SIZE " + data.length);
		String[] item_first = data[0].split("\\|");
		
		Length_Live = item_first.length;
		
		String name = item_first[0];
		
		String status = item_first[1];
		String codenew = item_first[2];
		Macodebydate();
		if (status.equals("0") && name.equals(NAME)&&codenew.contains(date_current)) {
			int i = 0;
			KqGiai_Item item;
			String kqgiai[] ;
			String last_update, code,date,dacbiet= null, giai1 = null, giai2= null,giai3= null,giai4 = null,giai5= null,giai6= null,giai7= null,giai8= null;
			
			
			if(!code3.equals("null")){
			for (i = 0; i < data.length; i++) {
				kqgiai = data[i].split("\\|");
				last_update= kqgiai[2];
				code = kqgiai[3];
				date = kqgiai[2].split(" ")[0];
				if (!code.equals(code1)&&!code.equals(code2)&&!code.equals(code3)) {
					item = new KqGiai_Item(code3,code3, date, dacbiet0, giai10, giai20, giai30, giai40, giai50, giai60, giai70,giai80);
					list.add(item);
				}else if (code.equals(code1)) {
				for (int j = 5; j < kqgiai.length; j++) {
					if(kqgiai[j].substring(0,1).equals("0")) dacbiet = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("1")) giai1 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("2")) giai2 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("3")) giai3 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("4")) giai4 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("5")) giai5 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("6")) giai6 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("7")) giai7 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("8")) giai8 = kqgiai[j];
				}
				if(dacbiet== null||dacbiet.equals("")||dacbiet.equals("0:"))dacbiet = "0:.....";
				if(giai1== null ||giai1.equals("")||giai1.equals("1:")||giai1.equals("1:null"))giai1 = "1:.....";
				if(giai2== null ||giai1.equals("")||giai2.equals("2:")||giai2.equals("2:null"))giai2 = "2:.....";
				if(giai3== null ||giai1.equals("")||giai3.equals("3:")||giai3.equals("3:null"))giai3 = "3:.....-.....";
				if(giai4== null ||giai1.equals("")||giai4.equals("4:")||giai4.equals("4:null"))giai4 = "4:.....-.....-.....-.....-.....-.....-.....";
				if(giai5== null ||giai1.equals("")||giai5.equals("5:")||giai5.equals("5:null"))giai5 = "5:.....";
				if(giai6== null ||giai1.equals("")||giai6.equals("6:")||giai6.equals("6:null"))giai6 = "6:.....-.....-.....";
				if(giai7== null ||giai1.equals("")||giai7.equals("7:")||giai7.equals("7:null"))giai7 = "7:.....";
				if(giai8== null ||giai1.equals("")||giai8.equals("8:")||giai8.equals("8:null"))giai8 = "8:.....";
				
				dacbiet=dacbiet.split(":")[1];
				giai1=giai1.split(":")[1];
				giai2=giai2.split(":")[1];
				giai3=giai3.split(":")[1] +"-.....";
				giai4=giai4.split(":")[1] +"-.....-.....-.....-.....-.....-.....";
				giai5=giai5.split(":")[1];
				giai6=giai6.split(":")[1] +"-.....-.....";
				giai7=giai7.split(":")[1];
				giai8=giai8.split(":")[1];
				
				item = new KqGiai_Item(code,code, date, dacbiet, giai1, giai2, giai3, giai4, giai5, giai6, giai7,giai8);
				list.add(item);
				}else if (code.equals(code2)) {
					for (int j = 5; j < kqgiai.length; j++) {
						if(kqgiai[j].substring(0,1).equals("0")) dacbiet = kqgiai[j];
						else if(kqgiai[j].substring(0,1).equals("1")) giai1 = kqgiai[j];
						else if(kqgiai[j].substring(0,1).equals("2")) giai2 = kqgiai[j];
						else if(kqgiai[j].substring(0,1).equals("3")) giai3 = kqgiai[j];
						else if(kqgiai[j].substring(0,1).equals("4")) giai4 = kqgiai[j];
						else if(kqgiai[j].substring(0,1).equals("5")) giai5 = kqgiai[j];
						else if(kqgiai[j].substring(0,1).equals("6")) giai6 = kqgiai[j];
						else if(kqgiai[j].substring(0,1).equals("7")) giai7 = kqgiai[j];
						else if(kqgiai[j].substring(0,1).equals("8")) giai8 = kqgiai[j];
					}
					if(dacbiet== null||dacbiet.equals("")||dacbiet.equals("0:"))dacbiet = "0:.....";
					if(giai1== null ||giai1.equals("")||giai1.equals("1:")||giai1.equals("1:null"))giai1 = "1:.....";
					if(giai2== null ||giai1.equals("")||giai2.equals("2:")||giai2.equals("2:null"))giai2 = "2:.....";
					if(giai3== null ||giai1.equals("")||giai3.equals("3:")||giai3.equals("3:null"))giai3 = "3:.....-.....";
					if(giai4== null ||giai1.equals("")||giai4.equals("4:")||giai4.equals("4:null"))giai4 = "4:.....-.....-.....-.....-.....-.....-.....";
					if(giai5== null ||giai1.equals("")||giai5.equals("5:")||giai5.equals("5:null"))giai5 = "5:.....";
					if(giai6== null ||giai1.equals("")||giai6.equals("6:")||giai6.equals("6:null"))giai6 = "6:.....-.....-.....";
					if(giai7== null ||giai1.equals("")||giai7.equals("7:")||giai7.equals("7:null"))giai7 = "7:.....";
					if(giai8== null ||giai1.equals("")||giai8.equals("8:")||giai8.equals("8:null"))giai8 = "8:.....";
					
					dacbiet=dacbiet.split(":")[1];
					giai1=giai1.split(":")[1];
					giai2=giai2.split(":")[1];
					giai3=giai3.split(":")[1] +"-.....";
					giai4=giai4.split(":")[1] +"-.....-.....-.....-.....-.....-.....";
					giai5=giai5.split(":")[1];
					giai6=giai6.split(":")[1] +"-.....-.....";
					giai7=giai7.split(":")[1];
					giai8=giai8.split(":")[1];
					
					item = new KqGiai_Item(code,code, date, dacbiet, giai1, giai2, giai3, giai4, giai5, giai6, giai7,giai8);
					list.add(item);
					}else if (code.equals(code3)) {
						for (int j = 5; j < kqgiai.length; j++) {
							if(kqgiai[j].substring(0,1).equals("0")) dacbiet = kqgiai[j];
							else if(kqgiai[j].substring(0,1).equals("1")) giai1 = kqgiai[j];
							else if(kqgiai[j].substring(0,1).equals("2")) giai2 = kqgiai[j];
							else if(kqgiai[j].substring(0,1).equals("3")) giai3 = kqgiai[j];
							else if(kqgiai[j].substring(0,1).equals("4")) giai4 = kqgiai[j];
							else if(kqgiai[j].substring(0,1).equals("5")) giai5 = kqgiai[j];
							else if(kqgiai[j].substring(0,1).equals("6")) giai6 = kqgiai[j];
							else if(kqgiai[j].substring(0,1).equals("7")) giai7 = kqgiai[j];
							else if(kqgiai[j].substring(0,1).equals("8")) giai8 = kqgiai[j];
						}
						if(dacbiet== null||dacbiet.equals("")||dacbiet.equals("0:"))dacbiet = "0:.....";
						if(giai1== null ||giai1.equals("")||giai1.equals("1:")||giai1.equals("1:null"))giai1 = "1:.....";
						if(giai2== null ||giai1.equals("")||giai2.equals("2:")||giai2.equals("2:null"))giai2 = "2:.....";
						if(giai3== null ||giai1.equals("")||giai3.equals("3:")||giai3.equals("3:null"))giai3 = "3:.....-.....";
						if(giai4== null ||giai1.equals("")||giai4.equals("4:")||giai4.equals("4:null"))giai4 = "4:.....-.....-.....-.....-.....-.....-.....";
						if(giai5== null ||giai1.equals("")||giai5.equals("5:")||giai5.equals("5:null"))giai5 = "5:.....";
						if(giai6== null ||giai1.equals("")||giai6.equals("6:")||giai6.equals("6:null"))giai6 = "6:.....-.....-.....";
						if(giai7== null ||giai1.equals("")||giai7.equals("7:")||giai7.equals("7:null"))giai7 = "7:.....";
						if(giai8== null ||giai1.equals("")||giai8.equals("8:")||giai8.equals("8:null"))giai8 = "8:.....";
						
						dacbiet=dacbiet.split(":")[1];
						giai1=giai1.split(":")[1];
						giai2=giai2.split(":")[1];
						giai3=giai3.split(":")[1] +"-.....";
						giai4=giai4.split(":")[1] +"-.....-.....-.....-.....-.....-.....";
						giai5=giai5.split(":")[1];
						giai6=giai6.split(":")[1] +"-.....-.....";
						giai7=giai7.split(":")[1];
						giai8=giai8.split(":")[1];
						
						item = new KqGiai_Item(code,code, date, dacbiet, giai1, giai2, giai3, giai4, giai5, giai6, giai7,giai8);
						list.add(item);
						
						}
			}
		}else {
			for (i = 0; i < data.length; i++) {
				kqgiai = data[i].split("\\|");
				last_update= kqgiai[2];
				code = kqgiai[3];
				date = kqgiai[2].split(" ")[0];
				if (!code.equals(code1)&&!code.equals(code2)) {
					item = new KqGiai_Item(code2,code2, date, dacbiet0, giai10, giai20, giai30, giai40, giai50, giai60, giai70,giai80);
					list.add(item);
				}else if (code.equals(code1)) {
				for (int j = 5; j < kqgiai.length; j++) {
					if(kqgiai[j].substring(0,1).equals("0")) dacbiet = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("1")) giai1 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("2")) giai2 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("3")) giai3 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("4")) giai4 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("5")) giai5 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("6")) giai6 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("7")) giai7 = kqgiai[j];
					else if(kqgiai[j].substring(0,1).equals("8")) giai8 = kqgiai[j];
				}
				if(dacbiet== null||dacbiet.equals("")||dacbiet.equals("0:"))dacbiet = "0:.....";
				if(giai1== null ||giai1.equals("")||giai1.equals("1:")||giai1.equals("1:null"))giai1 = "1:.....";
				if(giai2== null ||giai1.equals("")||giai2.equals("2:")||giai2.equals("2:null"))giai2 = "2:.....";
				if(giai3== null ||giai1.equals("")||giai3.equals("3:")||giai3.equals("3:null"))giai3 = "3:.....-.....";
				if(giai4== null ||giai1.equals("")||giai4.equals("4:")||giai4.equals("4:null"))giai4 = "4:.....-.....-.....-.....-.....-.....-.....";
				if(giai5== null ||giai1.equals("")||giai5.equals("5:")||giai5.equals("5:null"))giai5 = "5:.....";
				if(giai6== null ||giai1.equals("")||giai6.equals("6:")||giai6.equals("6:null"))giai6 = "6:.....-.....-.....";
				if(giai7== null ||giai1.equals("")||giai7.equals("7:")||giai7.equals("7:null"))giai7 = "7:.....";
				if(giai8== null ||giai1.equals("")||giai8.equals("8:")||giai8.equals("8:null"))giai8 = "8:.....";
				
				dacbiet=dacbiet.split(":")[1];
				giai1=giai1.split(":")[1];
				giai2=giai2.split(":")[1];
				giai3=giai3.split(":")[1] +"-.....";
				giai4=giai4.split(":")[1] +"-.....-.....-.....-.....-.....-.....";
				giai5=giai5.split(":")[1];
				giai6=giai6.split(":")[1] +"-.....-.....";
				giai7=giai7.split(":")[1];
				giai8=giai8.split(":")[1];
				
				item = new KqGiai_Item(code,code, date, dacbiet, giai1, giai2, giai3, giai4, giai5, giai6, giai7,giai8);
				list.add(item);
//				item = new KqGiai_Item(last_update,code2, date, dacbiet0, giai10, giai20, giai30, giai40, giai50, giai60, giai70,giai80);
//				list.add(item);
				}else if (code.equals(code2)) {
					for (int j = 5; j < kqgiai.length; j++) {
						if(kqgiai[j].substring(0,1).equals("0")) dacbiet = kqgiai[j]+":.....";
						else if(kqgiai[j].substring(0,1).equals("1")) giai1 = kqgiai[j]+":.....";
						else if(kqgiai[j].substring(0,1).equals("2")) giai2 = kqgiai[j]+":.....";
						else if(kqgiai[j].substring(0,1).equals("3")) giai3 = kqgiai[j]+":.....";
						else if(kqgiai[j].substring(0,1).equals("4")) giai4 = kqgiai[j]+":.....";
						else if(kqgiai[j].substring(0,1).equals("5")) giai5 = kqgiai[j]+":.....";
						else if(kqgiai[j].substring(0,1).equals("6")) giai6 = kqgiai[j]+":.....";
						else if(kqgiai[j].substring(0,1).equals("7")) giai7 = kqgiai[j]+":.....";
						else if(kqgiai[j].substring(0,1).equals("8")) giai8 = kqgiai[j]+":.....";
					}
					if(dacbiet== null||dacbiet.equals("")||dacbiet.equals("0:"))dacbiet = "0:.....";
					if(giai1== null ||giai1.equals("")||giai1.equals("1:")||giai1.equals("1:null"))giai1 = "1:.....";
					if(giai2== null ||giai1.equals("")||giai2.equals("2:")||giai2.equals("2:null"))giai2 = "2:.....";
					if(giai3== null ||giai1.equals("")||giai3.equals("3:")||giai3.equals("3:null"))giai3 = "3:.....-.....";
					if(giai4== null ||giai1.equals("")||giai4.equals("4:")||giai4.equals("4:null"))giai4 = "4:.....-.....-.....-.....-.....-.....-.....";
					if(giai5== null ||giai1.equals("")||giai5.equals("5:")||giai5.equals("5:null"))giai5 = "5:.....";
					if(giai6== null ||giai1.equals("")||giai6.equals("6:")||giai6.equals("6:null"))giai6 = "6:.....-.....-.....";
					if(giai7== null ||giai1.equals("")||giai7.equals("7:")||giai7.equals("7:null"))giai7 = "7:.....";
					if(giai8== null ||giai1.equals("")||giai8.equals("8:")||giai8.equals("8:null"))giai8 = "8:.....";
					
					dacbiet=dacbiet.split(":")[1];
					giai1=giai1.split(":")[1];
					giai2=giai2.split(":")[1];
					giai3=giai3.split(":")[1] +"-.....";
					giai4=giai4.split(":")[1] +"-.....-.....-.....-.....-.....-.....";
					giai5=giai5.split(":")[1];
					giai6=giai6.split(":")[1] +"-.....-.....";
					giai7=giai7.split(":")[1];
					giai8=giai8.split(":")[1];
					
//					item = new KqGiai_Item(last_update,code1, date, dacbiet0, giai10, giai20, giai30, giai40, giai50, giai60, giai70,giai80);
//					list.add(item);
					item = new KqGiai_Item(code,code, date, dacbiet, giai1, giai2, giai3, giai4, giai5, giai6, giai7,giai8);
					list.add(item);
					}
//				list.add(item);
			}
		}
			return list;
		} else{
			if(!code3.equals("null")){
			KqGiai_Item item3 = new KqGiai_Item(code3,code0, date0, dacbiet0, giai10, giai20, giai30, giai40, giai50, giai60, giai70,giai80);
			list.add(item3);
//			list.add(item3);
//			list.add(item3);
			}else {
			KqGiai_Item item2 = new KqGiai_Item(code2,code0, date0, dacbiet0, giai10, giai20, giai30, giai40, giai50, giai60, giai70,giai80);
			list.add(item2);
//			list.add(item2);
			}
		return list;
//			return null;
		}
	}
	public static Hashtable<Integer, String> getHashPrize(String strReceived){
		if(strReceived==null) return null;
		Hashtable<Integer, String> result = new Hashtable<Integer, String>();
		Collection<String> cTemp = StringTool.parseString(strReceived, "|");
		if(cTemp==null || cTemp.isEmpty()) return null;
		String str = "";
		
		String key;
		String value;
		for(Iterator<String> it=cTemp.iterator(); it.hasNext(); ){
			str = it.next();
			//System.out.println("str="+str);
			if(str.indexOf(":")>0){
				key = str.substring(0, str.indexOf(":"));
				value = str.substring(str.indexOf(":")+1);
				if(key==null || !StringTool.isNumberic(key) || value==null) continue;
				result.put(Integer.parseInt(key), value);
			}
		}
		return result;
	}
	public void Macodebydate(){
		Calendar caln = Calendar.getInstance();
	 	SimpleDateFormat dfn = new SimpleDateFormat("dd/MM/yyyy");
		String ngayofdatepicker = dfn.format(caln.getTime());
//		String ngayofdatepicker = etngay.getText().toString();
	 	String temp[];
	 	temp = ngayofdatepicker.split("/");
	 	final Calendar cal_thu = Calendar.getInstance();
	 	cal_thu.set(Integer.parseInt(temp[2]), Integer.parseInt(temp[1])-1, Integer.parseInt(temp[0].substring(temp[0].length()-2,temp[0].length()) ));
	 	int thuofngay= cal_thu.get(Calendar.DAY_OF_WEEK);
	 	
	 	if(thuofngay==1) {
	 		code1= "XSKH";
	 		code2= "XSKT";
	 	}
	 	else if (thuofngay ==7) {
	 		code1= "XSDNG";
	 		code2= "XSQNI";
	 		code3= "XSDNO";
		}
	 	
	 	else if (thuofngay ==6) {
	 		code1= "XSGL";
	 		code2= "XSNT";
		}
		else if (thuofngay ==5) {
			code1= "XSBDH";
	 		code2= "XSQB";
	 		code3= "XSQT";
		}
		else if (thuofngay ==4) {
			code1= "XSKH";
	 		code2= "XSDNG";
		}
		else if (thuofngay ==3) {
			code1= "XSDLK";
	 		code2= "XSQNM";
		}
		else if (thuofngay ==2) {
			code1= "XSPY";
	 		code2= "XSTTH";
		}


	}
}
